package com.geovis.emergency.spd.biz.pc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.geovis.emergency.spd.entity.pc.entity.PcDrillDutyOrg;
import com.geovis.emergency.spd.entity.pc.pojo.vo.PcDrillDutyOrgVO;
import com.geovis.emergency.spd.entity.pc.pojo.vo.PcDrillPlanDetailUsersVO;
import com.geovis.emergency.spd.entity.pc.pojo.vo.StringVO;

import java.util.List;

/**
 * <p>
 * 应急预案指挥模块 - 演练组织架构 服务类
 * </p>
 *
 * @author Lonsho
 * @since 2022-07-11
 */
public interface IPcDrillDutyOrgService extends IService<PcDrillDutyOrg> {

    /**
     * 获取我所在指挥编组
     * @param drillId
     * @param showAll
     * @return
     */
    List<String> myDutyGroupList(String drillId,boolean showAll);

    /**
     * 工作方案功能，获取当前用户所在组id
     * -如果是导调组，则返回null，表示工作方案获取所有组的数据
     * @param drillId
     * @return
     */
    String getUserGroupId4WorkPlan(String drillId);

    /**
     * 获取提交工作方案时，可选的人员列表
     * @param drillId
     * @return
     */
    List<PcDrillPlanDetailUsersVO> getUsers4WorkPlan(String drillId);


    String getUserGroupId(String drillId);

    String getGroupDuty(String drillId,String groupId);

    void removeDutyOrg(List<PcDrillDutyOrgVO> list,String pcDrillId);
    /**
     * 保存演练组织架构
     * @param dutyOrgList
     */
    void saveDrillDutyOrg(List<PcDrillDutyOrgVO> dutyOrgList,String drillId,String parentId,String ancestors);

    /**
     * 获取已选中的组织架构与人员
     * @param pcDrillId
     * @param pcPlanId
     * @param orgId 组织id(参考海政通改版加上的字段)
     * @return
     */
    List<PcDrillDutyOrgVO> getDrillDutyOrg(String pcDrillId,String pcPlanId,String orgId);


    List<StringVO> dutyGroupList(String drillId);
}
